Перейти к основному содержимому

Зачисление через внешнюю БД

Использование внешней базы данных для управления зачислением на курсы​


Вы можете использовать внешнюю базу данных (почти любого типа) для управления зачислениями. Предполагается, что ваша внешняя база данных содержит поле с идентификатором курса, поле с идентификатором пользователя и, опционально, поле с указанием роли. Эти данные сопоставляются с полями, которые вы выбираете в локальных таблицах курсов, пользователей и ролей.

Ниже приведены поддерживаемые источники данных, однако обратите внимание, что вам потребуется скомпилировать PHP с соответствующими настройками или использовать ODBC.

  • access
  • ado
  • mssql
  • borland_ibase
  • csv
  • db2
  • fbsql
  • firebird
  • ibase
  • informix72
  • informix
  • mysql (устарело, используйте mysqli вместо этого)
  • mysqli
  • mysqlt
  • oci805
  • oci8
  • oci8po
  • odbc
  • odbc_mssql
  • odbc_oracle
  • oracle
  • postgres64
  • postgres7
  • postgres
  • proxy
  • sqlanywhere
  • sybase
  • vfp

Зачисление и отчисление​


Зачисление через внешнюю базу данных происходит в момент, когда пользователь входит в YooLearn. Плагин автоматически попытается зачислить студента на все его курсы в соответствии с данными из внешней базы данных и, при необходимости, создаст пустые курсы, если они ещё не существуют. Чтобы проверить работу функции, войдите в систему как студент и убедитесь, что список его курсов соответствует ожиданиям.

Процесс также отчисляет пользователей из курсов, если их больше нет в базе данных. Записи пользователей помечаются в соответствии с методом их первоначального зачисления. Таким образом, плагин внешней базы данных может отчислять только тех пользователей, которые изначально были зачислены через него.

Скрытые курсы​


Курсы, для которых установлено значение "Курс недоступен для студентов", могут игнорироваться при зачислении, если параметр "enrol_db_ignorehiddencourse" установлен в значение "yes".

Зачисление и роли​


Настройка "enrol_database | defaultrole" на странице параметров плагина определяет роль, которую получит пользователь при добавлении в курс. По умолчанию им назначается стандартная роль курса (изначально — "студент").

Однако вы можете указать поле во внешней таблице (заданное в настройке "enrol_database | remoterolefield"), которое содержит короткое имя или ID роли пользователя. Например, это можно использовать для зачисления в курсы как студентов, так и преподавателей при соответствующей настройке базы данных.

Отчисление​


Настройка действия внешнего отчисления ("enrol_database | unenrolaction") на странице параметров плагина определяет, какое действие следует выполнить, когда пользователь исчезает из внешнего источника зачисления. Каждый вариант настройки выполняет следующее:

  1. "Отчислить пользователя из курса"
    Когда пользователь исчезает из внешнего источника, его зачисление полностью удаляется, а все роли снимаются. Это означает, что некоторые данные и настройки пользователя очищаются из курса во время отчисления (обычно включая оценки, попытки выполнения заданий и т. д.).
  2. "Оставить пользователя зачисленным"
    Когда пользователь исчезает из внешнего источника, его зачисление остается без изменений, и пользователь по-прежнему может заходить на курс, выполнять задания, получать доступ к материалам и т. д. Это вариант "ничего не делать".
  3. "Отключить зачисление на курс"
    Когда пользователь исчезает из внешнего источника, его зачисление приостанавливается (пользователь не может получить доступ к курсу, но его данные и настройки сохраняются), а роли остаются без изменений. Этот вариант может быть полезен, если, например, пользователю нужна определенная роль для отображения в интерфейсе (например, в журнале оценок, заданиях и т. д.).
  4. "Отключить зачисление на курс и удалить роли"
    Когда пользователь исчезает из внешнего источника, его зачисление приостанавливается, а роли, назначенные через этот метод зачисления, удаляются. Обратите внимание, что пользователь может "исчезнуть" из журнала оценок и других разделов.

Создание курсов​


При необходимости можно создавать курсы, которых еще нет на сайте YooLearn.

Вы можете дополнительно указать категорию, в которую будет помещен новый курс, в поле ID "Идентификатор новой категории курса". Данные в этом поле должны соответствовать ID существующей категории — новую категорию оно не создаст. ID категории — это числовой идентификатор, присваиваемый YooLearn в базе данных при создании категории (например, mdl_course_categories.id).

  • Не путайте этот ID категории с пользовательским полем "ID номер категории", которое можно задать вручную (см. MDL-28518 и MDL-31845).
  • Если оставить поле ID категории пустым, курс будет назначен в категорию по умолчанию.
  • Если указать ID несуществующей категории, курсы не будут созданы.

Категория для новых курсов по умолчанию — это категория, в которую будут добавляться и создаваться курсы, если не указать другую в поле ID новой категории курса.

Вы также можете указать Шаблон нового курса — курс, на основе которого будет создан новый. В этом поле следует указать краткое название шаблонного курса.

Вы можете задать даты начала и окончания курса в разделе "Администрирование" → "Плагины" → "Внешняя база данных". Если даты не указаны, датой начала курса будет текущая дата, а дата окончания установится в соответствии с продолжительностью курса по умолчанию.

Синхронизация зачислений через внешнюю базу данных​


Запланированная задача​

Запланированная задача под названием "Синхронизировать зачисление через внешнюю базу данных" выполняет одновременную синхронизацию всех зачислений пользователей — как добавление, так и удаление записей (а также создание курсов, если указано)(MDL-59986).

Настройки этой задачи находятся в разделе:
"Администрирование" → "Сервер" → "Задачи" → "Запланированные задачи".

Убедитесь, что эта задача включена и настроена на выполнение с нужной вам частотой. По умолчанию она отключена и запускается только один раз в день.

Учётные записи пользователей​

Напоминаем, что необходимо убедиться, что все пользователи, присутствующие во внешней системе зачислений, уже имеют учетные записи в YooLearn, так как незарегистрированные пользователи не могут быть зачислены на курсы.

Если вы используете внешние плагины аутентификации (например, база данных, LDAP и т. д.), вы можете воспользоваться скриптами этих плагинов для синхронизации пользователей перед запуском данной задачи.


Оригинал: https://docs.moodle.org/502/en/External_database_enrolment